home *** CD-ROM | disk | FTP | other *** search
/ Adephia Powerlink / AdephiaPowerlink-030102.iso / mac / launchVT.dxr / 00003_Radio Group.ls < prev    next >
Encoding:
Text File  |  2001-03-30  |  3.7 KB  |  144 lines

  1. property spriteNum, myDefault, ourID, ourGroupList, mySprite, myButtonMember, myName
  2.  
  3. on beginSprite me
  4.   Initialize(me)
  5. end
  6.  
  7. on mouseUp me
  8.   Toggle(me)
  9. end
  10.  
  11. on endSprite me
  12.   SaveSetting(me)
  13. end
  14.  
  15. on Initialize me
  16.   mySprite = sprite(me.spriteNum)
  17.   myButtonMember = mySprite.member
  18.   memberType = myButtonMember.type
  19.   case memberType of
  20.     #button:
  21.     otherwise:
  22.       ErrorAlert(me, #invalidMember, memberType)
  23.   end case
  24.   if myButtonMember.buttonType <> #radioButton then
  25.     myButtonMember.buttonType = #radioButton
  26.     myButtonMember.hilite = 1
  27.   else
  28.     myButtonMember.hilite = 0
  29.   end if
  30.   myName = myButtonMember.text
  31.   if myName = EMPTY then
  32.     myName = myButtonMember.name
  33.     if myName = EMPTY then
  34.       myName = myButtonMember.member
  35.     end if
  36.   end if
  37.   ourGroupList = []
  38.   sendAllSprites(#RadioGroup_RollCall, ourID, ourGroupList)
  39.   if ourGroupList.count() = 1 then
  40.     myButtonMember.hilite = 1
  41.   else
  42.     case myDefault of
  43.       #on:
  44.         call(#RadioGroup_Toggle, ourGroupList, 0)
  45.         myButtonMember.hilite = 1
  46.       #auto:
  47.         if myButtonMember.hilite then
  48.           call(#RadioGroup_Toggle, ourGroupList, 0)
  49.           myButtonMember.hilite = 1
  50.         end if
  51.     end case
  52.   end if
  53. end
  54.  
  55. on Toggle me
  56.   global gButton
  57.   if myButtonMember.hilite then
  58.     call(#RadioGroup_Toggle, ourGroupList, 0, me)
  59.     gButton = EMPTY
  60.     gButton = myButtonMember.name
  61.     put gButton
  62.   else
  63.     myButtonMember.hilite = 1
  64.   end if
  65. end
  66.  
  67. on SaveSetting me
  68.   if myDefault = #auto then
  69.     if myButtonMember.hilite then
  70.       myButtonMember.buttonType = #checkBox
  71.     end if
  72.   end if
  73. end
  74.  
  75. on RadioGroup_RollCall me, groupID, groupList
  76.   if groupID = ourID then
  77.     ourGroupList = groupList
  78.     ourGroupList.append(me)
  79.   end if
  80. end
  81.  
  82. on RadioGroup_Toggle me, whichState, callingBehavior
  83.   if callingBehavior = me then
  84.     exit
  85.   end if
  86.   if myButtonMember.hilite = whichState then
  87.     exit
  88.   end if
  89.   myButtonMember.hilite = whichState
  90. end
  91.  
  92. on RadioGroup_SelectedButton me, propListOrString
  93.   if not myButtonMember.hilite then
  94.     exit
  95.   end if
  96.   if stringp(propListOrString) then
  97.     if propListOrString <> ourID then
  98.       exit
  99.     end if
  100.   end if
  101.   groupNumber = ourGroupList.getPos(me)
  102.   Data = [:]
  103.   Data.addProp(#name, myName)
  104.   Data.addProp(#number, groupNumber)
  105.   Data.addProp(#sprite, spriteNum)
  106.   if ilk(propListOrString) <> #propList then
  107.     return Data
  108.   else
  109.     propListOrString.addProp(ourID, Data)
  110.     return propListOrString
  111.   end if
  112. end
  113.  
  114. on ErrorAlert me, theError, Data
  115.   behaviorName = string(me)
  116.   delete word 1 of behaviorName
  117.   delete char -30001 of behaviorName
  118.   delete char -30001 of behaviorName
  119.   case ilk(Data) of
  120.     #symbol:
  121.       Data = "#" & Data
  122.   end case
  123.   case theError of
  124.     #getPDLError:
  125.       beep()
  126.       return [#getPDLError: [#comment: "ERROR:  Click 'Cancel'.   This behavior" & RETURN & "only works with Button Members", #format: #string, #range: [EMPTY], #default: EMPTY]]
  127.     #invalidMember:
  128.       alert("BEHAVIOR ERROR: Frame " & the frame & ", Sprite " & me.spriteNum & RETURN & RETURN & "Behavior " & behaviorName & " only functions with Button Members." & RETURN & RETURN & "Current member type = " & Data)
  129.       halt()
  130.   end case
  131. end
  132.  
  133. on getPropertyDescriptionList me
  134.   if not (the currentSpriteNum) then
  135.     exit
  136.   end if
  137.   theMember = sprite(the currentSpriteNum).member
  138.   memberType = theMember.type
  139.   if theMember.type <> #button then
  140.     return ErrorAlert(me, #getPDLError)
  141.   end if
  142.   return [#ourID: [#comment: "ID string for the radio button group:", #format: #string, #default: "RadioGroup " & the currentSpriteNum], #myDefault: [#comment: "Default status of button:" & RETURN & "(may be overriden: see notes).", #format: #symbol, #range: [#off, #on, #auto], #default: #off]]
  143. end
  144.